Cloud computing may be considered as the delivery of computer services to end customers. The cloud computing environment is emerging as a promising environment offering flexibility, scalability, elasticity, fan-safe mechanisms, high availability, and other valuable features. Computer services provided in this environment, which may include for example data storage, data processing, and transmission of data from place to place, are provided by processors (cores), data storage units, software, and other such elements that typically are remotely located from the customers and sometimes from each other as well. The cloud name and symbol have come to be convenient abstractions for what in reality may be highly complex systems. Customers of such systems entrust data to the “cloud” and expect the “cloud” to provide computation services by means of software, hardware, or both. A cloud computing system, which may also be referred to as a computer cluster, may include one or more physical computers (referred to as machines or as nodes) each of which has from one to many processors and associated memory, data storage, communication facilities, and other hardware and software as needed. Open source tools and service providers have made such computer clusters easy to create and use. In some cloud computing systems, one or more processors or even entire nodes may be reserved exclusively for one customer for a defined period of time; individual processors are not shared but overall cluster resources may be shared among many customers so long as the cumulative demand of all of them does not exceed the resources of the cluster. In another approach, often used in public clouds such as Amazon EC2, a plurality of virtual machines may be run across some or all of the nodes and made available to customers as requested.